#include "head.h"
/* Usage:  */
int main(void){                                  
    
    // 初始化参数
    // 同时创建子线程
    status_t status;
    initStatus(&status, 4);
    // 初始化socket_fd对象和IP地址与端口
    int socket_fd;
    initSocket(&socket_fd, "8080", "192.168.229.128");
    // 创建epoll对象
    int epoll_fd = epoll_create(1);
    addEpoll(epoll_fd, socket_fd);
    while(1)
    {
        // 就绪集合
        struct epoll_event list[10];
        int epoll_num = epoll_wait(epoll_fd, list, 10, -1);
        ERROR_CHECK(epoll_num, -1, "epoll_wait");
        for(int i=0; i<epoll_num; i++)
        {
            int fd = list[i].data.fd;
            if(fd == socket_fd)
            {
                // 有新链接进来
                int net_fd = accept(socket_fd, NULL, NULL);
                ERROR_CHECK(net_fd, -1, "accept");
                // 共享资源
                pthread_mutex_lock(&status.lock);
                enQueue(&status.queue, net_fd);
                pthread_cond_broadcast(&status.cond);
                pthread_mutex_unlock(&status.lock);
            }
        }
    }
    return 0;
}


